Building a flexible incremental compiler back-end

نویسندگان

  • Phil Cook
  • Jim Welsh
  • Ian J. Hayes
  • Ian Hayes
چکیده

In compiler design there is often a trade-off between compilation time and target code quality. This trade-off is even more delicate in an incremental compiler, where low response time is crucial. Rather than present a single rigid incremental compiler, this paper explores the design of a flexible framework for building incremental compilers. The system described is adaptable to different workloads, source languages, and target architectures. This adaptability is derived from the use of a blackboard architecture for composing incremental components, combined with a common intermediate representation which is designed with incrementality in mind. Incremental techniques for constructing this representation and generating target code are described. The blackboard architecture allows significant freedom in the number and types of optimizations that may be applied to programs. A novel approach to incremental register allocation is presented which maintains this design philosophy.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Numerical and Experimental Analysis and Optimization of Process Parameters of AA1050 Incremental Sheet Forming

The incremental sheet metal forming (ISMF) process is a new and flexible method that is well suited for small batch production or prototyping. This paper studies the use of the finite element method in the incremental forming process of AA1050 sheets to investigate the influence of tool diameter, vertical step size, and friction coefficient on forming force, spring-back, and thickness distribut...

متن کامل

Compiler architecture using a portable intermediate language

The back end of a compiler performs machine-dependent tasks and lowlevel optimisations that are laborious to implement and difficult to debug. In addition, in languages that require run-time services such as garbage collection, the back end must interface with the run-time system to provide those services. The net result is that building a compiler back end entails a high implementation cost. I...

متن کامل

A Parametric View of RetargetableRegister

We discuss the problems involved in building a retargetable register allocator for use in an optimizing compiler. While the popular \register coloring" method is machine-independent, the allocator as a whole must implement numerous machine-dependent decisions. We present the kinds of information that must be parameterized in order to include register allocation in a retargetable compiler back-e...

متن کامل

Fast Peephole Optimization Techniques

SUMMARY Techniques for increasing the throughput of a peephole optimizer for intermediate code are presented. An analysis of the optimations to be performed enables an efficient matching and replacement algorithm to be found which minimizes rescanning after a successful replacement. The optimizer uses procedural interfaces; both for the input from the front end phase of the compiler and for the...

متن کامل

How Generic is a Generic Back End? Using MLRISC as a Back End for the TIL Compiler (Preliminary Report)

We describe the integration of MLRISC, a \generic" compiler back end, with TIL, a type-directed compiler for Standard ML. The TIL run-time system uses a form of type information to enable partially tag-free garbage collection. We show how we propagate this information through the nal phases of the compiler, even though the back end is unaware of the existence of this information. Additionally, ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005